MATLAB求解根轨迹与虚轴交点
思路与实现
本文介绍如何使用MATLAB找到根轨迹与虚轴的交点。
求解根轨迹与虚轴交点的思路很简单。当闭环极点恰好落在虚轴上时,系统处于临界稳定状态,此时极点可表示为纯虚数\(s = j\omega\)。将其代入闭环特征方程\(1 + K G(s)H(s) = 0\),分离实部与虚部并令两者同时为零,即可解出临界频率\(\omega\)及对应的临界增益\(K\)。此外,也可借助Routh判据中「全零行」对应的辅助方程来求解,该方法在经典控制理论教材中均有详细说明。
最初我尝试利用MATLAB的符号运算直接求解特征方程,该方法思路直观,但当系统阶次较高或根轨迹形状复杂时,容易遗漏与虚轴的交点。因此,我转向采用MATLAB更擅长的数值计算方法。其思路同样简单清晰,先通过rlocus函数生成根轨迹的离散数据点,接着扫描相邻增益对应的极点,若某段区间内极点实部符号发生突变,则判定该区间存在「跨轴」。随后在每个跨轴区间内使用二分搜索,逐步将极点的实部收敛到接近于零,从而精确得到根轨迹与虚轴的交点。下图展示了一个根轨迹走向复杂且有多个交点的例子,应用效果非常好。全部代码在这里。
如何用好AI大模型
在借助AI大模型辅助编程的过程中,我发现它生成基础代码模块的能力很强,但偶尔仍会出现低级错误。例如,在实现上述二分法时,模型曾在区间选择方向上出错,我在后续调试中才发现并予以修正的。此外,根据近期频繁尝试的经验,大模型更擅长实现局部功能,而在将多个模块整合方面则相对薄弱。因此,自身的技术能力从根本上决定了对大模型的运用效果。只有具备扎实的代码能力,才能借助大模型高效推进项目开发;只有保持清晰的逻辑与表达,才能准确识别并筛选出优质的生成结果。
关于根轨迹的辩论
最近,我就根轨迹与一位网友展开了友好且理性的辩论。现将全部回合的原文(仅将引号修改为「 」)贴于下方,供大家批评指正。
对方:根轨迹是上世纪算力太捞搞出的定性分析线性系统极点随某个参数变化趋势的方法,因为求特征方程的根过于复杂,所以期望从根轨迹判断极点大致运动趋势。 根轨迹绘制的各种条件都来源于复数的幅角表示。 现在再讲根轨迹实在是不合时宜。早该被丢进时代的垃圾桶的玩意,却反复出现在自控试题上,颇为唏嘘,我们的教育确实有问题。
我:根轨迹的概念和用法还是很重要的,当然,细讲手绘根轨迹就没什么意义。很多现象用根轨迹一下子就能解释清楚,模拟电路、电力电子中会用到根轨迹,很多实际工程中也有人用根轨迹做设计的。
对方:请具体指出场景,我没想到什么是现代设计工具无法取代的。 根轨迹严格局限于线性时不变系统,只能反应性能/稳定性随单个参数变化,对于多设计自由度的系统根本无能为力,还是需要通过迭代,既然如此那为什么不用敏感性分析? 若要反应变化趋势,完全可以采样多个增益下的频率-对数增益相位图或绘制Nyquist图,看disk margin比根轨迹直观得多。
我:在模拟集成电路设计中,根轨迹法可用于分析如何改变极点位置,确保反馈电路的稳定。你可以找下模拟集成电路设计的经典书籍,Razavi的Design of Analog CMOS Integrated Circuit一书,在里面找下关键词。或者你去搜下EE214 Advanced Analog Integrated Circuit Design这个课程,课件里面也有根轨迹内容。类似地,开关电源设计(自动化专业电力电子课程的完美应用领域)中也会用到。 你所说的,根轨迹(以及以Bode图、Nyquist图为基本工具的经典频域法)严格局限于线性时不变系统,这没问题。但在很多场景中,用经典控制理论工具非常足够,并不需要现代设计工具。我读研究生时,有位航空航天的院士去我院做讲座,说他们航空航天也用PID控制器。我曾经在某做手机的企业中做过一段时间手机摄像头防抖,用的就是经典控制理论中的传递函数模型,并没有用到高大上的现代设计工具。 最后,举个我最近用根轨迹的例子,有个毕业设计,对二阶系统采用PID控制器,调参数时,采用等幅振荡法。他给我们展示用比例控制先让系统等幅振荡的效果。我用根轨迹的简单法则判断两个闭环极点不可能跑到虚轴上,所以指出他的等幅振荡有问题,他不服,我把根轨迹一画,他就没说话了。
对方:1.现代设计工具不是指大家喜欢说的「现代控制」(状态空间法)进行设计 2.根轨迹的目的就是分析系统性能(极点位置)随某个参数的改变。敏感性分析对此可以做得更好,论鲁棒性则可以直接看margin。 3.「传统」控制(频域法)不止有PID。hinf/μ综合/qft、loop shaping/transfer recovery等都很常用。 4.PID的经验调参本来就是针对近似二阶系统生成的法则。虽然建模得到的闭环传递函数不会因增益改变进入右半平面,但实际因为模型摄动、外部扰动及观测噪声,仍然可能使根轨迹发生偏移。
我:1.是的 2.根轨迹的优势在于直观展示全局变化趋势,快速分析参数的定性影响,尤其适用于初步设计和调试。敏感性分析在定量分析方面做得更好。各种方法可以互补,说根轨迹可以丢到垃圾桶中,有些武断了。更何况,根轨迹在很多工程场景下确实用到了,这是铁的事实。 3.你说的hinf这些方法应该算后现代控制理论。 4.学生做纯仿真,用精确模型,不考虑模型摄动、扰动和噪声。
反正我觉得我更加有理有据一些。